package cn.b.sky.form.dao;

import cn.b.sky.form.model.BusinessField;
import cn.b.sky.form.model.condition.BusinessFieldCondition;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 
 * <strong>Title : BusinessFieldDao.java<br></strong>
 * <strong>Package : cn.b.sky.flowable.dao<br></strong>
 * <strong>Description : </strong>业务字段相关数据库操作接口定义<br> 
 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
 * <p>
 * @author JunLin.Yang<br>
 * @version <strong>v1.0.0</strong><br>
 */
public interface BusinessFieldDao {
	
		/**
  	 * 
  	 * <strong>Title : insertBusinessField<br></strong>
  	 * <strong>Description : </strong>新增业务字段数据<br> 
  	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
  	 * <p>
  	 * @param data 业务字段
  	 * @return
  	 * int 新增记录数
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
 		 */
  public int insertBusinessField(BusinessField data);
  
  	/**
  	 * 
  	 * <strong>Title : updateBusinessField<br></strong>
  	 * <strong>Description : </strong>更新业务字段数据<br> 
  	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
  	 * <p>
  	 * @param data 业务字段
  	 * @return
  	 * int 更新的记录数
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public int updateBusinessField(BusinessField data);
  	
  	
  	/**
  	 * 
  	 * <strong>Title : deleteBusinessField<br></strong>
  	 * <strong>Description : </strong>删除业务字段数据<br> 
  	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
  	 * <p>
  	 * @param data 业务字段
  	 * @return
  	 * int 删除的记录数
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public int deleteBusinessField(BusinessField data);
  	
  	
  	/**
  	 * 
  	 * <strong>Title : getBusinessFieldsCount<br></strong>
  	 * <strong>Description : </strong>查询所有的业务字段数据记录数<br> 
  	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
  	 * <p>
  	 * @return
  	 * long 数据记录数
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public long getBusinessFieldsCount();
  	
  	/**
  	 * 
  	 * <strong>Title : selectBusinessFields<br></strong>
  	 * <strong>Description : </strong>查询所有的业务字段数据<br> 
  	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
  	 * <p>
  	 * @return
  	 * List<BusinessField> 所有的业务字段数据
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public List<BusinessField> selectBusinessFields(
			@Param(value = "siteCode") String siteCode, @Param(value = "businessType") String businessType);
  	
  	/**
  	 * 
  	 * <strong>Title : deleteBusinessFieldByPrimaryKey<br></strong>
  	 * <strong>Description : </strong>根据主键信息删除业务字段数据<br> 
  	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
  	 * <p>
	 * @param businessType 业务类型
	 * @param siteCode 工厂编号
	 * @param businessField 业务字段
	 * @return
  	 * int 删除的记录数
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public int deleteBusinessFieldByPrimaryKey(@Param("siteCode") String siteCode, @Param("businessType") String businessType, @Param("businessField") String businessField);
  	
  /**
	 * 
	 * <strong>Title : getBusinessFieldByPrimaryKey<br></strong>
	 * <strong>Description : </strong>根据主键查询业务字段对象<br> 
	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
	 * <p>
	 * @param businessType 业务类型
	 * @param siteCode 工厂编号
	 * @param businessField 业务字段
	 * @return
	 * BusinessField 业务字段对象
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	public BusinessField getBusinessFieldByPrimaryKey(@Param("siteCode") String siteCode, @Param("businessType") String businessType, @Param("businessField") String businessField);
  
  /**
	 * 
	 * <strong>Title : existBusinessFieldByPrimaryKey<br></strong>
	 * <strong>Description : </strong>根据主键查询业务字段对象是否存在<br> 
	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
	 * <p>
	 * @param businessType 业务类型
	 * @param siteCode 工厂编号
	 * @param businessField 业务字段
	 * @return
	 * boolean 数据是否存在
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	public boolean existBusinessFieldByPrimaryKey(@Param("siteCode") String siteCode, @Param("businessType") String businessType, @Param("businessField") String businessField);
  
  	/**
  	 * 
  	 * <strong>Title : existsBusinessFieldByCondition<br></strong>
  	 * <strong>Description : </strong>根据查询对象查询业务字段数据是否存在<br> 
  	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
  	 * <p>
  	 * @param condition 业务字段查询对象
  	 * boolean 数据是否存在
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public boolean existsBusinessFieldByCondition(BusinessFieldCondition condition);
  	
  	/**
  	 * 
  	 * <strong>Title : deleteBusinessFieldByCondition<br></strong>
  	 * <strong>Description : </strong>根据查询对象删除业务字段数据<br> 
  	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
  	 * <p>
  	 * @param condition 业务字段查询对象
  	 * int 删除的记录数
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public int deleteBusinessFieldByCondition(BusinessFieldCondition condition);
	
	
  /**
	 * 
	 * <strong>Title : getBusinessFieldByCondition<br></strong>
	 * <strong>Description : </strong>根据查询条件查询对应业务字段对象<br> 
	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
	 * <p>
	 * @param condition 业务字段查询条件
	 * @return
	 * BusinessField 业务字段对象
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	public BusinessField getBusinessFieldByCondition(BusinessFieldCondition condition);
	
	/**
	 * 
	 * <strong>Title : selectBusinessFieldsByCondition<br></strong>
	 * <strong>Description : </strong>根据查询条件查询业务字段集合<br> 
	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
	 * <p>
	 * @param condition 业务字段查询条件
	 * @return 
	 * List<BusinessField> 业务字段集合
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	public List<BusinessField> selectBusinessFieldsByCondition(BusinessFieldCondition condition);
	
	/**
	 * 
	 * <strong>Title : selectBusinessFieldPageDataByCondition<br></strong>
	 * <strong>Description : </strong>根据查询条件查询相应分页的业务字段集合<br> 
	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
	 * <p>
	 * @param condition 业务字段查询条件
	 * @return 
	 * List<BusinessField> 业务字段集合
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	public List<BusinessField> selectBusinessFieldPageDataByCondition(BusinessFieldCondition condition);

	/**
	 * 
	 * <strong>Title : getBusinessFieldsCountByCondition<br></strong>
	 * <strong>Description : </strong>根据查询条件查询相应的业务字段记录数<br> 
	 * <strong>Create on : 2016-09-27 下午07:18:57<br></strong>
	 * <p>
	 * @param condition 业务字段查询条件
	 * @return
	 * long 数据记录数
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
  	public long getBusinessFieldsCountByCondition(BusinessFieldCondition condition);
  	
  	
    public List<BusinessField> getOnBusinessField(BusinessFieldCondition condition);

    public int getOnBusinessFieldCount(BusinessFieldCondition condition);
  
	
}
